package org.hxyjs.utils;

import cn.hutool.core.util.NumberUtil;

import java.util.function.BiConsumer;
import java.util.function.Consumer;

public class GenNumTools {
    /**
     * 将字符转换为整数返回 ，不能转换的输出-1
     * @param str
     * @return
     */
    public static String initId(String beginHead,int size,String  str){
        int len = str.length();//取得字符串长度
        String processStr = str.substring(beginHead.length(),len);// 从头部以后取剩下的字符串
        int result = -1;
        int zeroBeginIndex = 0;
        int processStrLen = processStr.length();//剩下字符串长度
        String processResult = "error";
        System.out.println(processStr);
       if(NumberUtil.isNumber(processStr)) { //剩下字符串如果能转成数字从左边开始去0
           for (int i = 0; i < processStrLen; i++) {
               char chr = processStr.charAt(i);
               if (chr == '0') {
                   zeroBeginIndex++;
               } else {
                   break;
               }
           }
           String temp = processStr.substring(zeroBeginIndex,processStrLen);//根据去0结果得到最大数字

           System.out.println(temp);
           System.out.println("---33--");
           result = temp.equals("")?0:Integer.parseInt(temp);
           processResult =  beginHead+ addZero(size,result + 1);
       }

        System.out.println(beginHead);
        System.out.println("-----");
        System.out.println(processStr);
        System.out.println("---22--");

        System.out.println(processResult);
        return processResult;
    }
    public static <T> Consumer<T> consumerWithIndex(BiConsumer<T, Integer> consumer) {
        class Obj {
            int i;
        }
        Obj obj = new Obj();
        return t -> {
            int index = obj.i++;
            consumer.accept(t, index);
        };
    }


    /**
     * 特定字符串长度的  整数补零
     * @param size
     * @param val
     * @return
     */
    public static String addZero(int size,int val){
        String result =  String.valueOf(val);
        int len = String.valueOf(val).length();
        if(size > len){
            String zeroStr = "";
            for(int i=0;i<size-len;i++){
                zeroStr += "0";
            }
            result  =zeroStr + result;
        }
       // System.out.println(result);
        return result;
    }

    public static void main(String[] args) {
        GenNumTools.initId("yjs",10,"yjs000401547");
    }
}
